< cbbadb9-ff25-4644-beb4-34e523358580

アプリに追加でプラグインと依存関係を管理する

このガイドでは、プロジェクトを設定して使用する方法について説明します。 プラグインと Gradle ライブラリの依存関係を管理する方法 既存の Android アプリと Flutter モジュールのプラグインの間で。

A. 単純なシナリオ

単純な場合:

  • Flutter モジュールは、追加の機能を持たないプラグインを使用しています。 Android OSのみを使用するため、Android Gradleに依存します。 カメラプラグインなどの API。
  • Flutter モジュールは Android を備えたプラグインを使用しています Gradle の依存関係などvideo_player プラグインの ExoPlayer、 しかし、既存の Android アプリは ExoPlayer に依存していませんでした。

追加の手順は必要ありません。あなたの追加アプリ モジュールは完全な Flutter アプリと同じように動作します。 Android Studio を使用して統合するかどうか、 Gradle サブプロジェクトまたは AAR、 推移的な Android Gradle ライブラリは自動的に 必要に応じて、外側の既存のアプリにバンドルされます。

B. プロジェクトの編集が必要なプラグイン

一部のプラグインでは、 プロジェクトの Android 側。

たとえば、firebase_crashlyticsプラグインにはマニュアルが必要です Android ラッパープロジェクトの編集build.gradleファイル。

完全な Flutter アプリの場合、これらの編集は flutterプロジェクトの/android/ディレクトリ。

Flutterモジュールの場合はDartのみ モジュールプロジェクト内のファイル。これらの Android を実行します 外側の既存の Android で Gradle ファイルを編集する Flutter モジュールではなくアプリ。

C. ライブラリのマージ

もう少し注意が必要なシナリオは次のような場合です。 既存の Android アプリケーションはすでに Flutter モジュールと同じ Android ライブラリ 実行します (プラグインを介して推移的に)。

たとえば、既存のアプリの Gradle には以下がすでに含まれている可能性があります。

既存のApp/app/build.gradle
…
dependencies {
  …
  implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
  …
}
…

そして、Flutter モジュールも依存しますfirebase_crashlytics経由pubspec.yaml:

flutter_module/pubspec.yaml
…
dependencies:
  …
  firebase_crashlytics: ^0.1.3
  …
…

このプラグインの使用法により、推移的に Gradle 依存関係が再度追加されます。 firebase_crashlytics v0.1.3 独自のグラドルファイル:

firebase_crashlytics_via_pub/android/build.gradle
…
dependencies {
  …
  implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
  …
}
…

二つcom.crashlytics.sdk.android:crashlytics依存関係 同じバージョンではない可能性があります。この例では、 ホスト アプリは v2.10.1 と Flutter をリクエストしました モジュール プラグインは v2.9.9 を要求しました。

デフォルトでは、Gradle v5依存関係のバージョンの競合を解決します最新バージョンのライブラリを使用します。

API がない限り、これは通常は問題ありません またはバージョン間の実装の破壊的な変更。 たとえば、新しい Crashlytics ライブラリを使用できます。 既存のアプリでは次のようになります。

既存のApp/app/build.gradle
…
dependencies {
  …
  implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta03
  …
}
…

API に大きな違いがあるため、このアプローチは機能しません Crashlytics の Gradle ライブラリのバージョン間 v17.0.0-beta03 および v2.9.9。

セマンティック バージョニングに従う Gradle ライブラリの場合、 通常はコンパイルエラーや実行時エラーを回避できます 同じメジャー セマンティック バージョンを使用することにより、 既存のアプリと Flutter モジュール プラグイン。